<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<pre>
    ES6的块级作用域 :  只能使用同层或者外层的let变量，否则报错

        let实际上为JavaScript新增了块级作用域。

        function f1() {
          let n = 5;
          if (true) {
            let n = 10;
          }
          console.log(n); // 5
        }
        上面的函数有两个代码块，都声明了变量n，运行后输出5。这表示外层代码块不受内层代码块的影响。如果使用var定义变量n，最后输出的值就是10。


    ES6允许块级作用域的任意嵌套。
        {{{{{let insane = 'Hello World'}}}}};

    上面代码使用了一个五层的块级作用域。外层作用域无法读取内层作用域的变量。

        {{{{
          {let insane = 'Hello World'}
          console.log(insane); // 报错
        }}}};

    内层作用域可以定义外层作用域的同名变量。
        {{{{
          let insane = 'Hello World';
          {let insane = 'Hello World'}
        }}}};
</pre>
</body>
</html>